import Object.BaiduPic2;
import Object.Constant;
import Object.MyRunnable;
import Object.Pic;
import Util.HttpUtil;

import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

public class BaiduSpider2 {

    private ExecutorService executor;

    /**
     * 基于API，设置每一页的请求链接
     * @param word  搜索关键字
     * @param begin 起始地址
     * @return      每一页的请求链接
     */
    private String setUrl(String word,int begin){
        String result = Constant.API_BAIDU2;
        result = result.replace("{word}",word);
        result = result.replace("{start}",String.valueOf(begin));
        return result;
    }

    /**
     * 用户使用
     * 获取一页数据的对象，即一个BaiduPic2对象
     * @param word  搜索关键字
     * @param begin 起始地址
     * @return      一个BaiduPic2对象，包含一页中所有图片对象的集合
     */
    protected BaiduPic2 getBaiduPic(String word, int begin){
        String url = setUrl(word,begin);
        return new BaiduPic2(HttpUtil.getDocument(url,false));
    }

    /**
     * 用户使用
     * 下载一个BaiduPic2对象中所有Pic对象
     * @param baiduPic2 要下载的BaiduPic2对象
     */
    protected void downloadAll(BaiduPic2 baiduPic2){
        executor = Executors.newCachedThreadPool();
        for (Pic p:baiduPic2.getPicList()) {
            executor.execute(new MyRunnable(p,2,false));
        }
    }
}
